﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ch05
{
    class Program
    {
        static void Main(string[] args)
        {
            
            //基本数据类型，又称为值类型
            //对象类型，又称为引用类型

            //int、float、double、char等类型都是基本数据类型
            //也就是值类型，开辟的空间中存的是具体的数值
            int a = 100;
            double b = 98.5;
            char c = 'A';

            //学生对象、老师对象等等，都是对象类型，也就是引用类型
            //数组也属于对象类型，数组也是引用类型
            //引用类型，在栈上开辟的空间存的是地址
            
            //定义数组,只会在栈上开辟一个很小的空间，能存一个地址就够了
            int[] nums;

            //如果希望往数组存入具体的数值，还需要先对数组实例化
            //当数组实例化时，则会在堆上开辟空间
            //实例化数组：new int[数组的长度]
            nums = new int[3];

            //访问数组中的元素：nums[下标]
            //下标是从0开始的，最大只能是长度减一
            nums[0] = 88;
            nums[1] = 66;
            nums[2] = 99;
            //下面代码下标为3运行时会报错
            //nums[3] = 100;

            /*
            //先定义数组，再实例化数组
            //int[] nums;
            //nums = new int[3];

            //定义数组的同时实例化数组
            int[] nums = new int[3];
            */

            /*
            for (int i = 0; i < nums.Length; i++)
            {
                Console.WriteLine(nums[i]);
            }
            */

            //使用foreach对数组进行循环遍历
            foreach ( int n in nums )
            {
                Console.WriteLine(n);
            }

        }
    }
}
